home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / program / vol15n11.zip / REXBOX.ZIP / TRACKS.CMD < prev   
OS/2 REXX Batch file  |  1996-01-28  |  3KB  |  87 lines

  1. /* MCI REXX Sample #4 */
  2. /* this script shows you how to determine the total playing time of   */
  3. /* a CD.  In addition, it has the ability to figure out the number of */
  4. /* tracks on a CD, and the total playing time of each track.          */
  5.  
  6. rc = RXFUNCADD('mciRxInit','MCIAPI','mciRxInit')
  7. InitRC = mciRxInit()
  8.  
  9. /* Open the CD */
  10.  
  11. rc = mciRxSendString("open cdaudio alias supercd wait", 'Retst', '0', '0')
  12. rc = mciRxSendString("status supercd media present wait", 'Retst', '0', '0')
  13. If Retst <> 'TRUE' then
  14.      do
  15.      say 'Must have CD inserted to run this command file'
  16.      say 'Please insert'
  17.      rc = mciRxSendString("status supercd media present wait", 'Retst', '0', '0')
  18.  
  19.        do while Retst <> 'TRUE'
  20.          rc = mciRxSendString("status supercd media present wait", 'Retst', '0', '0')
  21.        End
  22.      End
  23.  
  24. rc = mciRxSendString("status supercd number of tracks wait", 'NumTracks', '0', '0')
  25.  
  26. /* Initialize some variables */
  27.  
  28. loop = 1
  29. trackstring = 'status supercd length track'
  30.  
  31. /* The command below sets the current time format to milliseconds (or ms) */
  32. /* By default, OS/2 records time in MMTIME units (or 1/300 seconds).      */
  33. /* Milliseconds are a little easier to keep track of for most people so   */
  34. /* we will use this instead.                                              */
  35.  
  36. rc = mciRxSendString("set supercd time format ms wait", 'Retst', '0', '0')
  37.  
  38. rc = mciRxSendString("status supercd number of tracks wait", 'Retst', '0', '0')
  39. say 'The total number of tracks on the CD is: ' Retst ' seconds'
  40.  
  41.  
  42. rc = mciRxSendString("status supercd length wait", 'Retst', '0', '0')
  43. say 'The total playing time for the CD is: ' Retst ' seconds'
  44.  
  45.  
  46.  
  47.   /* we are going to loop through each track and query the device */
  48.   /* to determine how long each track (or song) will play         */
  49.  
  50.   do while loop <= NumTracks
  51.       
  52.       trackcommand = trackstring loop ' wait '
  53.       rc = mciRxSendString(trackcommand, 'Retst', '0', '0')
  54.  
  55.       /* Remember that the time format that OS/2 sends us is in ms. */
  56.       /* We will convert this number of seconds for the user.       */
  57.  
  58.       TimeInSecs = Retst / 100
  59.       say 'Track ' loop ' is: ' TimeInSecs ' seconds'
  60.       loop = loop + 1
  61.   End
  62.  
  63. rc = mciRxSendString("close supercd wait", 'Retst', '0', '0')
  64. say 'Finished SuperCD artist setup'
  65. exit
  66.  
  67.  
  68. error:
  69.    say 'Error' ErrRC 'at line' sigl ', sourceline:' sourceline(sigl)
  70.    say 'Terminating'
  71.    mciRxSendString("close supercd wait", 'Retst', '0', '0')
  72.    mciRxExit()               /* Tell the DLL we're going away */
  73.    exit ErrRC                /* exit, tell caller things went poorly */
  74.  
  75. halt:
  76. /*
  77.  * Close all device alias's, in case we previously killed
  78.  * this batch file in the same process.
  79.  */
  80.    say 'Terminating'
  81.    mciRxSendString("close supercd wait", 'Retst', '0', '0')
  82.    mciRxExit()               /* Tell the DLL we're going away */
  83.  
  84. exit
  85.  
  86.  
  87.